home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 201-225 / 201 / draco / src / sieve.d < prev    next >
Text File  |  1995-03-13  |  581b  |  30 lines

  1. /* Eratosthenes Sieve Prime Number Program in Draco */
  2.  
  3. int
  4.     SIZE = 8190,
  5.     ITERATIONS = 100;
  6.  
  7. proc main()void:
  8.     [SIZE + 1] bool flags;
  9.     unsigned ITERATIONS iter;
  10.     uint k, i, count, prime;
  11.  
  12.     writeln(ITERATIONS, " iterations.");
  13.     for iter from 1 upto ITERATIONS do
  14.     count := 0;
  15.     for i from 0 upto SIZE do
  16.         flags[i] := true;
  17.     od;
  18.     for i from 0 upto SIZE do
  19.         if flags[i] then
  20.         prime := 2 * i + 3;
  21.         for k from i + prime by prime upto SIZE do
  22.             flags[k] := false;
  23.         od;
  24.         count := count + 1;
  25.         fi;
  26.     od;
  27.     od;
  28.     writeln(count, " primes.");
  29. corp;
  30.